// // const a = {
// //     b: 2,
// //     foo: function () { console.log(this.b) }
// // }
// //
// // function b(foo) {
// //     // 输出什么？
// //     foo() // undefined
// // }
// //
// // b(a.foo)
//
// /**
//  * 如果方法被对象调用， 那么方法中的this， 就是该对象。
//  * 如果方法不是被对象调用， 那么方法中的this， 指向的就是全局的window。
//  */
//
//
// function foo() {
//     console.log(this.a) // 加了this, 如果找不到， 不向上面找
//     console.log(a) // 如果找不到， 需要往上级作用域查找
// }
// var a = 1
// // foo() // 找foo内部的作用域 => window全局作用域
//
// var obj = {
//     a: 2,
//     foo: foo // 指向obj, 那么this.a 就是obj的2
// }
// obj.foo() // 会先查找foo里面的a， 再向上找
//
//
// for (var i = 0; i < 6; i++) {
//     setTimeout(() => {
//         console.log(i)
//     })
// }
//
// for (let i = 0; i < 6; i++) {
//     setTimeout(() => {
//         console.log(i)
//     })
// }
// // 输出6 6 6 6 6 6 6
//
// for (var i = 0; i < 6; i++) {
//     // 开辟新的块作用域
//     (function (j){setTimeout(() => {
//         console.log(j)
//     }) })(i)
// }
//
//
// var a = 0
// var b = async () => {
//     a = a + await 10 // 注意 await算一个微任务， 需要在同步任务完成后完成
//     console.log('2', a) // -> ？
// }
// b()
// a++
// console.log('1', a) // -> ？
//
// var c = 0
// var d = async  () =>{
//     c = await 10 + c
//     console.log('2',c)
// }
// d()
// c++
// console.log('1', c)
//
//
// console.log('script start');
//
// setTimeout(function() {
//     console.log('setTimeout');
// }, 0);
//
// Promise.resolve().then(function() {
//     queueMicrotask(() => console.log('queueMicrotask'))
//     console.log('promise');
// });
//
// console.log('script end');


/**
 *  千万注意: 有宏任务， 微任务的， 一定要全局查看
 *  script start
 *  script end
 *  promise
 *  queueMicrotask
 *  setTimeout
 */


const data = [true, true, false, false, true]
// const data1 = data.forEach((item, index)=>{
//     if(item === false) {
//         return false
//     }
// })


let tag = false
for (let i =0; i<data.length; i++){
    if(data[i] === false) {
        tag =  true
    }
}

console.log(tag)



let tag2 = true
data.map((item, index) => {
    if(item === false){
        tag2 = false
    }
})

console.log(tag2)



